package com.bajiao.service.account;

import com.bajiao.entity.account.Account;
import com.bajiao.vo.account.AccountBillAdmin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bajiao.entity.account.AccountBill;
import com.bajiao.vo.account.AccountBillVO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @Description: 账单
 * @Author: FanJq
 * @Date:   2024-10-1005-11
 * @Version: V1.0
 */
public interface AccountBillService extends IService<AccountBill> {

    /**
     * 创建资金流水
     * @param userId
     * @param changeMoney 变化金额
     * @param billType 1:收入 2：支出
     * @param type 流水类型 1:充值 2:购买优惠券 3:购买商品 4:优惠券退款 5:商品退款 6:注册赠送 7:邀请奖励 99:平台赠送
     * @param orderNo 订单编号
     * @param title 标题
     * @return
     */
    Boolean crateBill(String userId, BigDecimal changeMoney, Integer billType, int type, String orderNo, String title, Account account);

    /**
     * @Description
     * 管理后台列表
     * @date 2025/1/2 15:46
     * @author FanJq
     * @param params
     * @return {@link List<AccountBillAdmin>}
    */
    List<AccountBillAdmin> getAdminList(Map<String, Object> params);

    /**
     * @Description
     * 账单明细
     * @date 2024/12/25 14:28
     * @author FanJq
     * @param userId
     * @param filterDate
     * @return {@link List< AccountBillVO>}
    */
    List<AccountBillVO> getBillPage(String userId, String filterDate);
}
